require(['./config'],()=>{
    require(['template','header','fly','footer','zoom'],(template,header)=>{
        class Information{
            constructor(){
                this.desc()
                this.fly()
            }
            //详情页的 根据Id 请求数据 渲染大中图
            desc(){
                const id=parseInt(window.location.search.slice(4))
                $.get("http://rap2api.taobao.org/app/mock/236127/information",{id},resp=>{
                    if(resp.code == 200){
                        const { information }  = resp.body
                        this.information={...information,id}
                        this.renderDesc()
                        this.renderProd()
                        this.zoom()
                    }
                })

            }
            renderDesc(){
               $('#information-list').html(template('information-template',{...this.information}) ) 
            }
            //渲染右侧四件不同商品
            renderProd(){
                const id=parseInt(window.location.search.slice(4))
                $.get("http://rap2api.taobao.org/app/mock/236127/information",{id},resp=>{
                    var product=template("product-list-template",{
                        type:resp.body.information.type
                    })
                    $('#product-list').html(product)
                })
            }
            //放大镜效果
            zoom(){
                $('.zoom-image').elevateZoom({
                    gallery:'smallImg'
                })
            }
            fly(){
                $('#add-buycart-btn').on('click',(e)=>{
                    $(`<div style="height:30px,width:30px,color:red">❤</div>`).fly({
                        start:{
                            left:e.clientX,
                            top:e.clientY
                        },
                        end:{
                            left:$('#flycar').position().left+16,
                            top:$('#flycar').position().top

                        },
                        speed:1.1,
                        vertex_Rtop:150,
                        onEnd:function(){
                            this.destroy()
                            header.suanCar()
                        }
                    })
                })
                this.addCar()
               

            }
            //根据加入购物车的当前数据 设置保存记录 并记录在localstorage中 以便在购物中得到信息
           addCar(){
               $('#add-buycart-btn').on('click',()=>{
                   //首先获取localstorage 看里面是否有数据 如果有 把这个数组拿出来push
                  //如果没有  存入一个只有一个元素的数组
                  var cart_info=localStorage.getItem('cart')
               
                  if(cart_info){
                      //有数据 取出来Push
                    //   首先判断有没有这件商品
                      cart_info=JSON.parse(cart_info)
                      const isLive=cart_info.some((shop)=>{
                        return shop.id===this.information.id
                       
                      })
                      if(isLive){
                          //存在这条商品 count++
                         var count=$("#num-select").val()
                         cart_info=cart_info.map((item)=>{
                              if(item.id===this.information.id){
                                  item.count+=parseInt(count) 
                              }
                              return item
                          })
                      }
                      else{
                        //不存在 
                        cart_info.push({...this.information,count:1,check:true})
                    }
                   
                      //如果有当前商品，改变其count值
                  localStorage.setItem('cart',JSON.stringify(cart_info))
                  }
                 else{
                      //没数据 存入只有这条信息的数组
                      localStorage.setItem('cart',JSON.stringify([{...this.information,
                        count:1,check:true
                    }]))
                  }

               })
           }
        }
         return new Information()
            })
    })